"use client"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { useToast } from "@/components/Toast"; import { type ApiError, api } from "@/lib/client/api"; export function RunActions({ runId, status, paperId, }: { runId: string; status: string; paperId: string | null; }) { const router = useRouter(); const toast = useToast(); const [busy, setBusy] = useState(false); const act = async (path: string, body: unknown, ok: string) => { setBusy(true); try { await api(path, { json: body }); toast.push("success", ok); router.refresh(); } catch (e) { toast.push("error", (e as ApiError).message); } finally { setBusy(false); } }; const canCancel = !["published", "cancelled", "failed", "cancelling"].includes(status); const canRetry = ["failed", "quality_failed"].includes(status); const canPublish = ["awaiting_approval", "ready_to_publish"].includes(status); return (